package com.ffcs.crmd.tsp.admin.entity;

import com.ffcs.crmd.tsp.api.dto.enu.JobMisfireInstruction;
import com.ffcs.crmd.tsp.api.dto.enu.JobRecover;
import com.ffcs.crmd.tsp.api.dto.enu.JobRepeatType;
import com.ffcs.crmd.tsp.api.dto.enu.JobTimeoutPolicy;
import com.ffcs.crmd.tsp.api.dto.enu.JobType;

/**
 * 
 * 功能说明:任务实体类
 *
 * @author ZHONGFUHUA
 * 
 * @Date 2016年4月26日 下午2:17:43
 *
 *
 * 版本号  |   作者   |  修改时间   |   修改内容
 *
 */
public class Job extends BaseEntity {
    
    /**
     * 主键
     */
    private Long                  id;
    
    /**
     * 子任务名
     */
    private String                name;
    
    /**
     * 任务类路径
     */
    private String                jobClass;
    
    /**
     * 任务描述
     */
    private String                description;
    
    /**
     * cron表达式
     */
    private String                cronExpression;
    
    /**
     * 执行端标识
     */
    private String                identity;
    
    /**
     * 集群名称
     */
    private String                clusterName;
    
    /**
     * 任务组名称
     */
    private String                jobGroupName;
    
    /**
     * 任务组ID
     */
    private Long                  jobGroupId;
    
    /**
     * 重复间隔,单位毫秒
     */
    private Long                  repeatInterval;
    
    /**
     * 任务运行超时时间
     */
    private Long                  executeTimeout;
    
    /**
     * 死任务重置延迟时间    -1不延迟
     */
    private Long                  resetDeathDelayTime;
    
    /**
     * 优先级
     */
    private Short                 priority;
    
    /**
     * 重复次数
     */
    private Integer               repeatCount;
    
    /**
     * 任务已触发的缓存上限数量
     */
    private Integer               bufferSizeLimit;
    
    /**
     * 任务类型
     */
    private JobType               jobType               = JobType.NORMAL;
    
    /**
     * 是否可恢复
     */
    private JobRecover            jobRecover            = JobRecover.TRUE;
    
    /**
     * 任务执行周期类型
     */
    private JobRepeatType         jobRepeatType         = JobRepeatType.NORMAL;
    
    /**
     * 超时策略
     */
    private JobTimeoutPolicy      jobTimeoutPolicy      = JobTimeoutPolicy.IGNORE;
    
    /**
     * 错过执行的任务策略
     */
    private JobMisfireInstruction jobMisfireInstruction = JobMisfireInstruction.SMART_POLICY;
    
    /**
     * 功能说明: 获取主键
     *
     * @return id 主键
     */
    public Long getId() {
        return id;
    }
    
    /**
     * 功能说明: 设置主键
     *
     * @param id 主键 
     */
    public void setId(Long id) {
        this.id = id;
    }
    
    /**
     * 功能说明: 获取子任务名
     *
     * @return name 子任务名
     */
    public String getName() {
        return name;
    }
    
    /**
     * 功能说明: 设置子任务名
     *
     * @param name 子任务名 
     */
    public void setName(String name) {
        this.name = name;
    }
    
    /**
     * 功能说明: 获取任务类路径
     *
     * @return jobClass 任务类路径
     */
    public String getJobClass() {
        return jobClass;
    }
    
    /**
     * 功能说明: 设置任务类路径
     *
     * @param jobClass 任务类路径 
     */
    public void setJobClass(String jobClass) {
        this.jobClass = jobClass;
    }
    
    /**
     * 功能说明: 获取任务描述
     *
     * @return description 任务描述
     */
    public String getDescription() {
        return description;
    }
    
    /**
     * 功能说明: 设置任务描述
     *
     * @param description 任务描述 
     */
    public void setDescription(String description) {
        this.description = description;
    }
    
    /**
     * 功能说明: 获取cron表达式
     *
     * @return cronExpression cron表达式
     */
    public String getCronExpression() {
        return cronExpression;
    }
    
    /**
     * 功能说明: 设置cron表达式
     *
     * @param cronExpression cron表达式 
     */
    public void setCronExpression(String cronExpression) {
        this.cronExpression = cronExpression;
    }
    
    /**
     * 功能说明: 获取执行端标识
     *
     * @return identity 执行端标识
     */
    public String getIdentity() {
        return identity;
    }
    
    /**
     * 功能说明: 设置执行端标识
     *
     * @param identity 执行端标识 
     */
    public void setIdentity(String identity) {
        this.identity = identity;
    }
    
    /**
     * 功能说明: 获取集群名称
     *
     * @return clusterName 集群名称
     */
    public String getClusterName() {
        return clusterName;
    }
    
    /**
     * 功能说明: 设置集群名称
     *
     * @param clusterName 集群名称 
     */
    public void setClusterName(String clusterName) {
        this.clusterName = clusterName;
    }
    
    /**
     * 功能说明: 获取任务组名称
     *
     * @return jobGroupName 任务组名称
     */
    public String getJobGroupName() {
        return jobGroupName;
    }
    
    /**
     * 功能说明: 设置任务组名称
     *
     * @param jobGroupName 任务组名称 
     */
    public void setJobGroupName(String jobGroupName) {
        this.jobGroupName = jobGroupName;
    }
    
    /**
     * 功能说明: 获取任务组ID
     *
     * @return jobGroupId 任务组ID
     */
    public Long getJobGroupId() {
        return jobGroupId;
    }
    
    /**
     * 功能说明: 设置任务组ID
     *
     * @param jobGroupId 任务组ID 
     */
    public void setJobGroupId(Long jobGroupId) {
        this.jobGroupId = jobGroupId;
    }
    
    /**
     * 功能说明: 获取重复间隔单位毫秒
     *
     * @return repeatInterval 重复间隔单位毫秒
     */
    public Long getRepeatInterval() {
        return repeatInterval;
    }
    
    /**
     * 功能说明: 设置重复间隔单位毫秒
     *
     * @param repeatInterval 重复间隔单位毫秒 
     */
    public void setRepeatInterval(Long repeatInterval) {
        this.repeatInterval = repeatInterval;
    }
    
    /**
     * 功能说明: 获取任务运行超时时间
     *
     * @return executeTimeout 任务运行超时时间
     */
    public Long getExecuteTimeout() {
        return executeTimeout;
    }
    
    /**
     * 功能说明: 设置任务运行超时时间
     *
     * @param executeTimeout 任务运行超时时间 
     */
    public void setExecuteTimeout(Long executeTimeout) {
        this.executeTimeout = executeTimeout;
    }
    
    /**
     * 功能说明: 获取死任务重置延迟时间-1不延迟
     *
     * @return resetDeathDelayTime 死任务重置延迟时间-1不延迟
     */
    public Long getResetDeathDelayTime() {
        return resetDeathDelayTime;
    }
    
    /**
     * 功能说明: 设置死任务重置延迟时间-1不延迟
     *
     * @param resetDeathDelayTime 死任务重置延迟时间-1不延迟 
     */
    public void setResetDeathDelayTime(Long resetDeathDelayTime) {
        this.resetDeathDelayTime = resetDeathDelayTime;
    }
    
    /**
     * 功能说明: 获取优先级
     *
     * @return priority 优先级
     */
    public Short getPriority() {
        return priority;
    }
    
    /**
     * 功能说明: 设置优先级
     *
     * @param priority 优先级 
     */
    public void setPriority(Short priority) {
        this.priority = priority;
    }
    
    /**
     * 功能说明: 获取重复次数
     *
     * @return repeatCount 重复次数
     */
    public Integer getRepeatCount() {
        return repeatCount;
    }
    
    /**
     * 功能说明: 设置重复次数
     *
     * @param repeatCount 重复次数 
     */
    public void setRepeatCount(Integer repeatCount) {
        this.repeatCount = repeatCount;
    }
    
    /**
     * 功能说明: 获取任务已触发的缓存上限数量
     *
     * @return bufferSizeLimit 任务已触发的缓存上限数量
     */
    public Integer getBufferSizeLimit() {
        return bufferSizeLimit;
    }
    
    /**
     * 功能说明: 设置任务已触发的缓存上限数量
     *
     * @param bufferSizeLimit 任务已触发的缓存上限数量 
     */
    public void setBufferSizeLimit(Integer bufferSizeLimit) {
        this.bufferSizeLimit = bufferSizeLimit;
    }
    
    /**
     * 功能说明: 获取任务类型
     *
     * @return jobType 任务类型
     */
    public JobType getJobType() {
        return jobType;
    }
    
    /**
     * 功能说明: 设置任务类型
     *
     * @param jobType 任务类型 
     */
    public void setJobType(JobType jobType) {
        this.jobType = jobType;
    }
    
    /**
     * 功能说明: 获取是否可恢复
     *
     * @return jobRecover 是否可恢复
     */
    public JobRecover getJobRecover() {
        return jobRecover;
    }
    
    /**
     * 功能说明: 设置是否可恢复
     *
     * @param jobRecover 是否可恢复 
     */
    public void setJobRecover(JobRecover jobRecover) {
        this.jobRecover = jobRecover;
    }
    
    /**
     * 功能说明: 获取任务执行周期类型
     *
     * @return jobRepeatType 任务执行周期类型
     */
    public JobRepeatType getJobRepeatType() {
        return jobRepeatType;
    }
    
    /**
     * 功能说明: 设置任务执行周期类型
     *
     * @param jobRepeatType 任务执行周期类型 
     */
    public void setJobRepeatType(JobRepeatType jobRepeatType) {
        this.jobRepeatType = jobRepeatType;
    }
    
    /**
     * 功能说明: 获取超时策略
     *
     * @return jobTimeoutPolicy 超时策略
     */
    public JobTimeoutPolicy getJobTimeoutPolicy() {
        return jobTimeoutPolicy;
    }
    
    /**
     * 功能说明: 设置超时策略
     *
     * @param jobTimeoutPolicy 超时策略 
     */
    public void setJobTimeoutPolicy(JobTimeoutPolicy jobTimeoutPolicy) {
        this.jobTimeoutPolicy = jobTimeoutPolicy;
    }
    
    /**
     * 功能说明: 获取错过执行的任务策略
     *
     * @return jobMisfireInstruction 错过执行的任务策略
     */
    public JobMisfireInstruction getJobMisfireInstruction() {
        return jobMisfireInstruction;
    }
    
    /**
     * 功能说明: 设置错过执行的任务策略
     *
     * @param jobMisfireInstruction 错过执行的任务策略 
     */
    public void setJobMisfireInstruction(JobMisfireInstruction jobMisfireInstruction) {
        this.jobMisfireInstruction = jobMisfireInstruction;
    }
    
}
